gtkimcontextxim: fix gtk_im_context_xim_set_client_widget not handling widget=NULL
authorChristoph Reiter <creiter@src.gnome.org>
Sun, 4 Mar 2018 17:40:12 +0000 (18:40 +0100)
committerChristoph Reiter <creiter@src.gnome.org>
Sun, 4 Mar 2018 17:40:12 +0000 (18:40 +0100)
gtk_im_context_set_client_widget() allows passing NULL as widget to signal that
the widget no longer exists. The xim implementation didn't handle that
case which led to the test suite on gitlab-ci failing.

gtk/gtkimcontextxim.c

index 15e3cce1319d9557ba888e7a71b0ac7aaa022e2c..8c84c54146a78e32dd440e44e9c0ee2a75e39ae5 100644 (file)
@@ -575,9 +575,12 @@ gtk_im_context_xim_set_client_widget (GtkIMContext *context,
                                       GtkWidget    *widget)
 {
   GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context);
-  GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
+  GdkWindow *window = NULL;
 
-  set_ic_client_window (context_xim, gtk_widget_get_window (toplevel));
+  if (widget != NULL)
+    window = gtk_widget_get_window (gtk_widget_get_toplevel (widget));
+
+  set_ic_client_window (context_xim, window);
 }
 
 GtkIMContext *